lst = ['a', '1', '2bb', '234', '', '9']
# # 使用reduce取出lst里的数字 --> 12349
lst1 = list(filter(lambda x: x and str(x).split() and str(x).isdigit(), lst))
print(lst1)
def func1(x,y):
    return x + y
print(reduce(func1, lst1))

# • 正数在前负数在后
# • 正数从小到大
# • 负数从大到小
list1 = [7, -8, 5, 4, 0, -2, -5]
print(sorted(list1, key=lambda x: x if x > 0 else x*-10))

# 这是一个字符串排序，排序规则：小写<大写<奇数<偶数 •  #排序:小写-大写-奇数-偶数
# • 原理：先比较元组的第一个值，FALSE
# 思路是利用ascii码
s = 'asdf234GDSd6sf23'
def sort(str1):
    for i in str1:
        # 偶数的ascii码减10，奇数和字母按照正常ascii码来排序
        if i.isdigit() and int(i) % 2 == 0:
            return ord(i)-10
        else:
            return ord(i)

print(sorted(s, key=sort, reverse=True))